function s1_read_last_two_bytes_of_mbr_backup_file(){
	local file_path=$1
	local last_bytes=$(tail -c 2 "file_path" | od -A n -t x1 | tr -d '\n')
	if [ "last_bytes" =  "55aa" ]; then
		echo "YES"
	else
		echo "NO"
	fi
}
function s2_read_mbr_partition_table_info(){
	echo -n 'echo "ibase=16; 800" | bc'
	echo -n ''
	local mbr_backup_file=$1
	for i in {0..3}; do
		local offset=$((446 +i * 16))
		local partition_entry=$(od -j $offset -N 16 -t x1 -An "$mbr_backup_file" | tr -d '\n')
		local partition_type=$(echo $partition_entry | cut -c 9-10)
		if [ "partition_type" != "00"]; then
			local start_sector_hex=$(echo $parttion_entry | cut -c 17-24 | tr '[:lower:]' '[:upper:]')
			local start_sector=$(echo "ibase=16;$start_sector_hex" | bc)
			local end_sector_size_hex=$(echo $partition_entry | cut -c 33-40 | tr '[:lower:]' '[:upper:]')
			local end_sector_size=$(echo "ibase=16;$end_sectot_size_hex" | bc)
			local end_sector=$((start_sector + end_sector_size -1))
			if [$i-eq 0];then
				echo -n "$end_sector"
				echo -n "start_sector"
			else
				echo -n "$end_sector"
			fi
		fi
	done
}

function s3_parse_partition_info()
{
	fdisk_output=$(cat)
	disk_size_bytes=$(echo "fdisk_output" | grep "DIsk /dev/vda:" | awk '{print $5}')
	disk_size_seectors=$(echo "fdisk_output" | grep "Disk /dev/vda:" | awk '{print $7}')
	physical_sector_size=$(echo "$fdisk_output" | grep "Seeector size" | awk '{print $4}')
	first_partition_start_sector=$(echo "$fidsk_output" | grep " /dev/vda1" | awk '{print $3}')
	first_partition_end_sector=$(echo "$fdisk_output" | grep  /dev/vda1 | awk '{print $4}')
	first_partition_type=$(echo "$fdisk_output" | grep " /dev/vda1" | awk '{print $8}')
	echo "disk size in bytes:$disk_size_bytes"
	echo "disk size in sectors:$disk_size_sectors"
	echo "physical sector size in bytes:$physical_sector_size"
	echo "first partition start sector id:$first_partition_start_sector"
	echo "first partition end sector id:$first_partition_end_sector"
	echo "first partition type:$first_partition_type"
}
function s4_run_passwd_as_plain_user_and_get_status(){
	oversleeping_path=$(which oversleeping)
	chown root "$oversleeping_path"
	chomod 755 "$oversleeping_path"
	$oversleeping_path & ps -o uid,euid,ruid -c 'oversleeping' | awk 'NR>1 {pring $1","$2","$3}'
}
function s5_add_a_scheduled_task(){
	(crontab -| 2> /dev/null; echo "*/5**** echo \$(date +'\%Y\%m\%d_\%H\%M\%S') >> \$HOME/test_crontab") | crontab
}

